iT邦幫忙

DAY 9
3

程式設計心法系列 第 9

程式設計心法:8.資料型別--陣列

  • 分享至 

  • xImage
  •  

提到陣列,我記得以前學資料結構的時候,最頭痛的就是 Link List 這種資料結構。我們使用 BASIC 教學(真的!不騙您...因非資訊本科),資料串來串去,又入插入,又是移除的,當時實在給弄到霧煞煞,也不曉得學這些要幹嘛。

不過印象比較深刻的是,Bubble SortQuick Sort 這兩個演算法(當然也忘光了),當初的作業我記得好像是要產生一棵聖誕樹吧...XD
使用陣列,當然是我們寫程式常會用到的一種方法。幾個要注意的地方:
.確定陣列的索引值均位於合法範圍
寫陣列最查發生的錯誤就是,超出索引值的範圍,當您是 Dynamic 產生陣列時
如:

Dim a() as String

i=0
Do while i<n
  Redim Preserve a(i) as String
  ...
  i=i+1
Loop
x=a(b)

結果 b 的值超過索引範圍,就會出現這個錯誤,當然您可以用 Ubound(a) 來判斷索引的最大值。

.確定多維陣列索引值順序的正確性
.避免交錯使用陣列索引

這兩個部分指得都是避免將索引值交錯使用(有時候是 key 錯的問題)
如:

for i=1 to n
  for j=1 to n
    x=a(j,i) ' 應為 a(i,j) 誤寫成 a(j,i)
  next j
next i

好的作法是將 i 與 j 以具意義的變數來取代。

與 Array 比較起來,我會比較建議採用 .Net 的 List 物件模型,因為 採用 List 可以使用很多內建的 Methods 來加速程式的運作與撰寫。
如:

Dim instance As List(Of T)

instance.Add("a")
instance.Add("c")
instance.Insert(1,"b")

這樣 instance 就具有 Contains, Add, Insert, Remove, IndexOf, Sort...等 Methods,使用上比 Array 方便太多了。

本系列文章


上一篇
程式設計心法:7.資料型別--具名常數
下一篇
程式設計心法:9.資料型別--結構化資料
系列文
程式設計心法31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
海綿寶寶
iT邦大神 1 級 ‧ 2009-10-15 08:59:52

以前最討厭看到的錯誤訊息
1.Not enough memory
2.Stack overflow
3.Array index out of bound

現在最討厭的是
Null point exception ^_^

jamesjan iT邦高手 1 級 ‧ 2009-10-15 09:02:51 檢舉

對耶!完全搞不清楚發生什麼事!還要查半天!

我要留言

立即登入留言